如何用vba实现数据有效性下拉列表的多选?

您所在的位置:网站首页 vba 数据有效性 如何用vba实现数据有效性下拉列表的多选?

如何用vba实现数据有效性下拉列表的多选?

2023-05-17 04:43| 来源: 网络整理| 查看: 265

如何用vba实现数据有效性下拉列表的多选? 2019年6月19日 作者:水星Excel 10,489 次浏览 暂无评论

在excel中可以为单元格添加数据有效性下拉列表,方便快速地选择要输入的内容,如下图所示:

但是数据有效性的下拉列表只能单选,不能多选。

这时候可以用ActiveX 列表框控件代替,如下图所示:

首先在工作表中插入一个ActiveX 列表框控件命名为“ListBox1”,然后在工作表Sheet1中添加如下代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Call ListAddItem With Sheet1.ListBox1 .Left = Target.Offset(0, 1).Left .Top = Target.Top .Width = Target.Width .Height = Target.Height * 10 End With End Sub Sub ListAddItem() Sheet1.ListBox1.Clear Dim oWK As Worksheet '列表项所在的工作表中 Set oWK = Sheet2 With oWK '添加列表项 For i = 2 To .Range("a65536").End(xlUp).Row With Sheet1.ListBox1 .ListStyle = fmListStyleOption .MultiSelect = fmMultiSelectMulti .AddItem oWK.Cells(i, "a").Text, i - 2 End With Next i End With End Sub Private Sub ListBox1_Change() '响应列表框中选择了不同项目后的事件 Dim arr() k = 0 With Sheet1.ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) = True Then ReDim Preserve arr(k) arr(k) = .List(i) k = k + 1 End If Next i End With sText = Join(arr, ",") Excel.ActiveCell = sText End Sub 其它相关文章推荐:如何用vba做出类似百度搜索那样的逐步提示模糊查询下拉列表框?如何在excel中进行年利率、月利率、日利率之间的转换如何用vba实现聚光灯高亮行列单元格的功能?如何用vba判断活动工作表中的单元格是否被其它工作表的公式引用?如何在excel中用vba插入并调整图形的大小位置?如何用vba使选中的单元格直接进入编辑状态? 分类 :  EXCEL VBA , VBA , 窗体、控件 标签 :  ListBox1 , 下拉列表 , 列表框 , 多选 , 数据有效性        

声明: 本站文章均属原创,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则视为侵权。如果想要每天都收到本站的技术文章推送,可以微信搜索公众号:水星Excel或者Excel_Office关注。其它事宜请加QQ:1722187970 或微信号:xycgenius 联系。 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3